Chicago’s eviction data highlights more variability and higher peaks
in eviction rates. The broader spread across different demographic and
economic factors suggests that Chicago’s eviction dynamics are
influenced by a wider array of systemic issues.
Eviction Rate by Percent Other Population (Other Minorities)
The combined plot illustrates that higher eviction rates tend to
cluster in areas with lower percentages of minority population
High eviction rates are more concentrated in areas with lower
percentages of populations categorized as “Other.” This suggests that
neighborhoods with diverse racial compositions face eviction issues
similar to or worse than predominantly Black or Latine
neighborhoods.

Eviction Rate by Percent Black Population
Higher percentages of Black populations correlate with higher
eviction rates. This suggests that predominantly Black neighborhoods are
more vulnerable to evictions, likely due to historical and ongoing
socio-economic disadvantages.
Eviction Rate by Percent Asian Population
Areas with higher percentages of Asian populations generally exhibit
lower eviction rates. This indicates that predominantly Asian
neighborhoods might have better socio-economic conditions or support
systems that help mitigate eviction risks.
Eviction Rate by Percent Latine Population
Higher percentages of Latine populations do not show a consistent
pattern with eviction rates. Some areas with significant Latine
populations experience high eviction rates, indicating that specific
localized factors or economic hardships affect these communities.

Eviction Rate by Grade
Areas with lower grades (C and D) exhibit significantly higher
eviction rates compared to higher-graded areas (A and B). This
underscores the enduring impact of redlining, where historically
marginalized communities continue to face higher eviction risks.
Histogram of Eviction Rate
The histogram reveals that while most areas have lower eviction
rates, there are significant pockets with very high rates. This
distribution highlights the need to focus resources on the most affected
areas to prevent evictions effectively.
Density Plot of Eviction Rate by Grade
Higher ERAP index values are associated with higher eviction rates.
This indicates that areas needing more rental assistance also experience
higher eviction risks. However, the ERAP index alone does not fully
predict eviction rates, there might a need to look other factors that
predict eviction.
Eviction Rate by ERAP Index Value
Observation: Higher ERAP index values correlate with higher eviction
rates, especially at the higher end of the index.
Difference: The correlation between high ERAP index values and
eviction rates is more apparent in Chicago than in Seattle, suggesting
that rental assistance programs might be less effective in preventing
evictions here.
LS0tDQp0aXRsZTogIkV2aWN0aW9uIEFuYWx5c2lzIChDaGljYWdvKSINCmF1dGhvcjogIkJlbnlhbWluIFllaW1vIg0KZGF0ZTogImByIFN5cy5EYXRlKClgIg0Kb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQNCi0tLQ0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KG9wZW5pbnRybykNCmxpYnJhcnkoaHR0cikNCmxpYnJhcnkoanNvbmxpdGUpDQpsaWJyYXJ5KHNmKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHJlYWRyKQ0KbGlicmFyeShyZWFkeGwpDQpsaWJyYXJ5KEdHYWxseSkNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShyZXNoYXBlMikNCmxpYnJhcnkoZ3JpZEV4dHJhKQ0KbGlicmFyeShncmlkKQ0KDQpgYGANCg0KQ2hpY2FnbydzIGV2aWN0aW9uIGRhdGEgaGlnaGxpZ2h0cyBtb3JlIHZhcmlhYmlsaXR5IGFuZCBoaWdoZXIgcGVha3MgaW4gZXZpY3Rpb24gcmF0ZXMuIFRoZSBicm9hZGVyIHNwcmVhZCBhY3Jvc3MgZGlmZmVyZW50IGRlbW9ncmFwaGljIGFuZCBlY29ub21pYyBmYWN0b3JzIHN1Z2dlc3RzIHRoYXQgQ2hpY2FnbydzIGV2aWN0aW9uIGR5bmFtaWNzIGFyZSBpbmZsdWVuY2VkIGJ5IGEgd2lkZXIgYXJyYXkgb2Ygc3lzdGVtaWMgaXNzdWVzLiANCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBMb2FkIGRhdGENCmNoaWNhZ28gPC0gcmVhZF9zZigiY2hpY2Fnb19lcmFwX3JlZF9ldmljIDMuZ2VvanNvbiIpDQoNCiMgSGFuZGxlIG1pc3NpbmcgdmFsdWVzIGJ5IHJlbW92aW5nIHJvd3Mgd2l0aCBOQXMNCmNoaWNhZ29fY2xlYW4gPC0gY2hpY2FnbyB8Pg0KICBmaWx0ZXIoIWlzLm5hKGV2aWN0aW9uX3JhdGUpICYgDQogICAgICAgICAgICFpcy5uYShwZXJjZW50X2Nvc3RfYnVyZGVuZWRfcmVudGVycykgJiANCiAgICAgICAgICAgIWlzLm5hKG1lZGlhbi5ncm9zcy5yZW50KSAmIA0KICAgICAgICAgICAhaXMubmEocGVyY2VudF9ibGFjaykgJiANCiAgICAgICAgICAgIWlzLm5hKHBlcmNlbnRfYXNpYW4pICYgDQogICAgICAgICAgICFpcy5uYShwZXJjZW50X2xhdGluZSkgJiANCiAgICAgICAgICAgIWlzLm5hKHBlcmNlbnRfb3RoZXIpICYgDQogICAgICAgICAgICFpcy5uYShpbmRleF92YWx1ZSkgJiANCiAgICAgICAgICAgIWlzLm5hKHllYXIpICYgDQogICAgICAgICAgICFpcy5uYShjb3VudHlfbmFtZSkpDQpgYGANCg0KYGBge3IgZWNobz1GQUxTRSwgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRX0NCg0KIyBQbG90IDE6IFNjYXR0ZXIgUGxvdCBvZiBFdmljdGlvbiBSYXRlIGJ5IFBlcmNlbnQgQmxhY2sgUG9wdWxhdGlvbg0KcGxvdDEgPC0gZ2dwbG90KGNoaWNhZ29fY2xlYW4sIGFlcyh4ID0gcGVyY2VudF9ibGFjaywgeSA9IGV2aWN0aW9uX3JhdGUpKSArDQogIGdlb21fcG9pbnQoY29sb3IgPSAiYmxhY2siLCBhbHBoYSA9IDAuMzUsIHNoYXBlID0gMjEsIHN0cm9rZSA9IDAuNSwgZmlsbCA9ICIjMzhFQjM3IiApICsNCiAgbGFicyh0aXRsZSA9ICJFdmljdGlvbiBSYXRlIGJ5IFBlcmNlbnQgQmxhY2sgUG9wdWxhdGlvbiIsIHggPSAiUGVyY2VudCBCbGFjayBQb3B1bGF0aW9uIiwgeSA9ICJFdmljdGlvbiBSYXRlIHBlciAxMDAwIikgKw0KICBzY2FsZV94X2NvbnRpbnVvdXMobGltaXRzID0gYygwLCAxKSkgKw0KICBnZW9tX3Ntb290aChtZXRob2QgPSAibG0iLCBjb2xvciA9ICJibHVlIikgKw0KICB0aGVtZShwbG90LnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksIA0KICAgICAgICBheGlzLnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMCksIA0KICAgICAgICBheGlzLnRleHQgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDgpKQ0KDQojIFBsb3QgMjogU2NhdHRlciBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBBc2lhbiBQb3B1bGF0aW9uDQpwbG90MiA8LSBnZ3Bsb3QoY2hpY2Fnb19jbGVhbiwgYWVzKHggPSBwZXJjZW50X2FzaWFuLCB5ID0gZXZpY3Rpb25fcmF0ZSkpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibGFjayIsIGFscGhhID0gMC4zNSwgc2hhcGUgPSAyMSwgc3Ryb2tlID0gMC41LCBmaWxsID0gIiNFNzUwN0MiICkgKw0KICBsYWJzKHRpdGxlID0gIkV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBBc2lhbiBQb3B1bGF0aW9uIiwgeCA9ICJQZXJjZW50IEFzaWFuIFBvcHVsYXRpb24iLCB5ID0gIkV2aWN0aW9uIFJhdGUgcGVyIDEwMDAiKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEpKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gImJsdWUiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpDQoNCg0KIyBQbG90IDM6IFNjYXR0ZXIgUGxvdCBvZiBFdmljdGlvbiBSYXRlIGJ5IFBlcmNlbnQgTGF0aW5lIFBvcHVsYXRpb24NCnBsb3QzIDwtIGdncGxvdChjaGljYWdvX2NsZWFuLCBhZXMoeCA9IHBlcmNlbnRfbGF0aW5lLCB5ID0gZXZpY3Rpb25fcmF0ZSkpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibGFjayIsIGFscGhhID0gMC4zNSwgc2hhcGUgPSAyMSwgc3Ryb2tlID0gMC41LCBmaWxsID0gIiMxRUNDQzQiICkgKw0KICBsYWJzKHRpdGxlID0gIkV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBMYXRpbmUgUG9wdWxhdGlvbiIsIHggPSAiUGVyY2VudCBMYXRpbmUgUG9wdWxhdGlvbiIsIHkgPSAiRXZpY3Rpb24gUmF0ZSBwZXIgMTAwMCIpICsNCiAgc2NhbGVfeF9jb250aW51b3VzKGxpbWl0cyA9IGMoMCwgMSkpICsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiYmx1ZSIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSkNCg0KDQojIFBsb3QgNDogU2NhdHRlciBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBPdGhlciBQb3B1bGF0aW9uDQpwbG90NCA8LSBnZ3Bsb3QoY2hpY2Fnb19jbGVhbiwgYWVzKHggPSBwZXJjZW50X290aGVyLCB5ID0gZXZpY3Rpb25fcmF0ZSkpICsNCiAgZ2VvbV9wb2ludChjb2xvciA9ICJibGFjayIsIGFscGhhID0gMC4zNSwgc2hhcGUgPSAyMSwgc3Ryb2tlID0gMC41LCBmaWxsID0gIiNDMTJGQjMiICkgKw0KICBsYWJzKHRpdGxlID0gIkV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBPdGhlciBQb3B1bGF0aW9uIiwgeCA9ICJQZXJjZW50IE90aGVyIFBvcHVsYXRpb24iLCB5ID0gIkV2aWN0aW9uIFJhdGUgcGVyIDEwMDAiKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEpKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gImJsdWUiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpDQoNCg0KIyBQbG90IDU6IEJhciBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgR3JhZGUNCnBsb3Q1IDwtIGdncGxvdChjaGljYWdvX2NsZWFuLCBhZXMoeCA9IGdyYWRlLCB5ID0gZXZpY3Rpb25fcmF0ZSwgZmlsbCA9IGdyYWRlKSkgKw0KICBnZW9tX2JhcihzdGF0ID0gImlkZW50aXR5IikgKw0KICBsYWJzKHRpdGxlID0gIkV2aWN0aW9uIFJhdGUgYnkgR3JhZGUiLCB4ID0gIkdyYWRlIiwgeSA9ICJFdmljdGlvbiBSYXRlIikNCg0KIyBQbG90IDY6IEhpc3RvZ3JhbSBvZiBFdmljdGlvbiBSYXRlDQpwbG90NiA8LSBnZ3Bsb3QoY2hpY2Fnb19jbGVhbiwgYWVzKHggPSBldmljdGlvbl9yYXRlKSkgKw0KICBnZW9tX2hpc3RvZ3JhbShiaW53aWR0aCA9IDEsIGZpbGwgPSAiYmx1ZSIsIGNvbG9yID0gImJsYWNrIikgKw0KICBsYWJzKHRpdGxlID0gIkhpc3RvZ3JhbSBvZiBFdmljdGlvbiBSYXRlIiwgeCA9ICJFdmljdGlvbiBSYXRlIiwgeSA9ICJGcmVxdWVuY3kiKQ0KDQojIFBsb3QgNzogRGVuc2l0eSBQbG90IG9mIEV2aWN0aW9uIFJhdGUNCnBsb3Q3IDwtIGdncGxvdChjaGljYWdvX2NsZWFuLCBhZXMoeCA9IGV2aWN0aW9uX3JhdGUsIGZpbGwgPSBncmFkZSkpICsNCiAgZ2VvbV9kZW5zaXR5KGFscGhhID0gMC41KSArDQogIGxhYnModGl0bGUgPSAiRGVuc2l0eSBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgR3JhZGUiLCB4ID0gIkV2aWN0aW9uIFJhdGUiLCB5ID0gIkRlbnNpdHkiKSsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSkNCg0KDQojIFBsb3QgODogU2NhdHRlciBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgRVJBUCBJbmRleCBWYWx1ZQ0KcGxvdDggPC0gZ2dwbG90KGNoaWNhZ29fY2xlYW4sIGFlcyh4ID0gaW5kZXhfdmFsdWUsIHkgPSBldmljdGlvbl9yYXRlKSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gImJsYWNrIiwgYWxwaGEgPSAwLjM1LCBzaGFwZSA9IDIxLCBzdHJva2UgPSAwLjUsIGZpbGwgPSAiI0VCREM0OSIgKSArDQogIGxhYnModGl0bGUgPSAiRXZpY3Rpb24gUmF0ZSBieSBFUkFQIEluZGV4IFZhbHVlIiwgeCA9ICJFUkFQIEluZGV4IFZhbHVlIiwgeSA9ICJFdmljdGlvbiBSYXRlIikrDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gImJsdWUiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpDQoNCiMgUGxvdCA5OiBTY2F0dGVyIFBsb3Qgb2YgRXZpY3Rpb24gUmF0ZSBieSBNZWRpYW4gR3Jvc3MgUmVudA0KcGxvdDkgPC0gZ2dwbG90KGNoaWNhZ29fY2xlYW4sIGFlcyh4ID0gbWVkaWFuLmdyb3NzLnJlbnQsIHkgPSBldmljdGlvbl9yYXRlKSkgKw0KICBnZW9tX3BvaW50KGNvbG9yID0gImJsYWNrIiwgYWxwaGEgPSAwLjM1LCBzaGFwZSA9IDIxLCBzdHJva2UgPSAwLjUsIGZpbGwgPSAiI0VCREM0OSIgKSArDQogIGxhYnModGl0bGUgPSAiRXZpY3Rpb24gUmF0ZSBieSBNZWRpYW4gR3Jvc3MgUmVudCIsIHggPSAiTWVkaWFuIEdyb3NzIFJlbnQiLCB5ID0gIkV2aWN0aW9uIFJhdGUiKSArDQogIGdlb21fc21vb3RoKG1ldGhvZCA9ICJsbSIsIGNvbG9yID0gImJsdWUiKSArDQogIHRoZW1lKHBsb3QudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGl0bGUgPSBlbGVtZW50X3RleHQoc2l6ZSA9IDEwKSwgDQogICAgICAgIGF4aXMudGV4dCA9IGVsZW1lbnRfdGV4dChzaXplID0gOCkpDQoNCg0KIyBDb21iaW5lIGFsbCByYWNlcyBpbnRvIGEgbG9uZyBmb3JtYXQNCmNoaWNhZ29fbG9uZyA8LSBjaGljYWdvX2NsZWFuIHw+DQogIGdhdGhlcihrZXkgPSAicmFjZXNfbm9uV2hpdGUiLCB2YWx1ZSA9ICJwZXJjZW50X3JhY2VzX25vbldoaXRlIiwgcGVyY2VudF9ibGFjaywgcGVyY2VudF9hc2lhbiwgcGVyY2VudF9sYXRpbmUsIHBlcmNlbnRfb3RoZXIpDQoNCiMgQ3JlYXRlIHRoZSBjb21iaW5lZCBzY2F0dGVyIHBsb3QgdXNpbmcgUGxvdGx5DQpjb21iaW5lZF9wbG90IDwtIGdncGxvdChjaGljYWdvX2xvbmcsIGFlcyh4ID0gcGVyY2VudF9yYWNlc19ub25XaGl0ZSwgeSA9IGV2aWN0aW9uX3JhdGUsICBmaWxsID0gcmFjZXNfbm9uV2hpdGUpKSArDQogIGdlb21fcG9pbnQoIGFscGhhID0gMC4zNSwgc2hhcGUgPSAyMSwgc3Ryb2tlID0gMC41KSArDQogIGdlb21faml0dGVyKGFscGhhID0gMC41MCkgKw0KICBsYWJzKHRpdGxlID0gIkV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBQb3B1bGF0aW9uIG9mIEFsbCBSYWNlcyIsIHggPSAiUGVyY2VudCBQb3B1bGF0aW9uIiwgeSA9ICJFdmljdGlvbiBSYXRlIChwZXIgMTAwMCkiKSArDQogIHNjYWxlX3lfY29udGludW91cyhsaW1pdHMgPSBjKDAsNjApKSArDQogIHNjYWxlX3hfY29udGludW91cyhsaW1pdHMgPSBjKDAsIDEpKSsNCiAgZ2VvbV9zbW9vdGgobWV0aG9kID0gImxtIiwgY29sb3IgPSAiYmx1ZSIpICsNCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMTApLCANCiAgICAgICAgYXhpcy50ZXh0ID0gZWxlbWVudF90ZXh0KHNpemUgPSA4KSkNCg0KY29tYmluZWRfcGxvdGx5IDwtIGdncGxvdGx5KGNvbWJpbmVkX3Bsb3QpDQoNCg0KYGBgDQoNCiMjIyMgRXZpY3Rpb24gUmF0ZSBieSBQZXJjZW50IE90aGVyIFBvcHVsYXRpb24gKE90aGVyIE1pbm9yaXRpZXMpDQoNClRoZSBjb21iaW5lZCBwbG90IGlsbHVzdHJhdGVzIHRoYXQgaGlnaGVyIGV2aWN0aW9uIHJhdGVzIHRlbmQgdG8gY2x1c3RlciBpbiBhcmVhcyB3aXRoIGxvd2VyIHBlcmNlbnRhZ2VzIG9mIG1pbm9yaXR5IHBvcHVsYXRpb24NCg0KSGlnaCBldmljdGlvbiByYXRlcyBhcmUgbW9yZSBjb25jZW50cmF0ZWQgaW4gYXJlYXMgd2l0aCBsb3dlciBwZXJjZW50YWdlcyBvZiBwb3B1bGF0aW9ucyBjYXRlZ29yaXplZCBhcyAiT3RoZXIuIiBUaGlzIHN1Z2dlc3RzIHRoYXQgbmVpZ2hib3Job29kcyB3aXRoIGRpdmVyc2UgcmFjaWFsIGNvbXBvc2l0aW9ucyBmYWNlIGV2aWN0aW9uIGlzc3VlcyBzaW1pbGFyIHRvIG9yIHdvcnNlIHRoYW4gcHJlZG9taW5hbnRseSBCbGFjayBvciBMYXRpbmUgbmVpZ2hib3Job29kcy4NCg0KDQpgYGB7cn0NCg0KY29tYmluZWRfcGxvdGx5DQoNCmBgYA0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBBcnJhbmdlIHRoZSBmaXJzdCBzZXQgb2YgcGxvdHMgaW4gYSBncmlkDQpncmlkLmFycmFuZ2UoDQogIGFycmFuZ2VHcm9iKA0KICAgIGdyb2JzID0gbGlzdChwbG90MSwgcGxvdDIsIHBsb3QzLCBwbG90NCksIA0KICAgIG5jb2wgPSAyDQogICksDQogIHRvcCA9IHRleHRHcm9iKCJDaGljYWdvIEdyYXBocyIsIGdwID0gZ3Bhcihmb250c2l6ZSA9IDIwLCBmb250ID0gMikpDQopDQpgYGANCg0KDQojIyMjIEV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBCbGFjayBQb3B1bGF0aW9uDQoNCkhpZ2hlciBwZXJjZW50YWdlcyBvZiBCbGFjayBwb3B1bGF0aW9ucyBjb3JyZWxhdGUgd2l0aCBoaWdoZXIgZXZpY3Rpb24gcmF0ZXMuIFRoaXMgc3VnZ2VzdHMgdGhhdCBwcmVkb21pbmFudGx5IEJsYWNrIG5laWdoYm9yaG9vZHMgYXJlIG1vcmUgdnVsbmVyYWJsZSB0byBldmljdGlvbnMsIGxpa2VseSBkdWUgdG8gaGlzdG9yaWNhbCBhbmQgb25nb2luZyBzb2Npby1lY29ub21pYyBkaXNhZHZhbnRhZ2VzLg0KDQojIyMjIEV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBBc2lhbiBQb3B1bGF0aW9uDQoNCkFyZWFzIHdpdGggaGlnaGVyIHBlcmNlbnRhZ2VzIG9mIEFzaWFuIHBvcHVsYXRpb25zIGdlbmVyYWxseSBleGhpYml0IGxvd2VyIGV2aWN0aW9uIHJhdGVzLiBUaGlzIGluZGljYXRlcyB0aGF0IHByZWRvbWluYW50bHkgQXNpYW4gbmVpZ2hib3Job29kcyBtaWdodCBoYXZlIGJldHRlciBzb2Npby1lY29ub21pYyBjb25kaXRpb25zIG9yIHN1cHBvcnQgc3lzdGVtcyB0aGF0IGhlbHAgbWl0aWdhdGUgZXZpY3Rpb24gcmlza3MuIA0KDQojIyMjIEV2aWN0aW9uIFJhdGUgYnkgUGVyY2VudCBMYXRpbmUgUG9wdWxhdGlvbg0KDQpIaWdoZXIgcGVyY2VudGFnZXMgb2YgTGF0aW5lIHBvcHVsYXRpb25zIGRvIG5vdCBzaG93IGEgY29uc2lzdGVudCBwYXR0ZXJuIHdpdGggZXZpY3Rpb24gcmF0ZXMuIFNvbWUgYXJlYXMgd2l0aCBzaWduaWZpY2FudCBMYXRpbmUgcG9wdWxhdGlvbnMgZXhwZXJpZW5jZSBoaWdoIGV2aWN0aW9uIHJhdGVzLCBpbmRpY2F0aW5nIHRoYXQgc3BlY2lmaWMgbG9jYWxpemVkIGZhY3RvcnMgb3IgZWNvbm9taWMgaGFyZHNoaXBzIGFmZmVjdCB0aGVzZSBjb21tdW5pdGllcy4NCg0KDQpgYGB7ciBlY2hvPUZBTFNFLCBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFfQ0KIyBBcnJhbmdlIHRoZSBzZWNvbmQgc2V0IG9mIHBsb3RzIGluIGEgZ3JpZA0KZ3JpZC5hcnJhbmdlKA0KICBhcnJhbmdlR3JvYigNCiAgICBncm9icyA9IGxpc3QocGxvdDUsIHBsb3Q2LCBwbG90NywgcGxvdDgsIHBsb3Q5KSwgDQogICAgbmNvbCA9IDINCiAgKQ0KKQ0KDQpgYGANCg0KDQojIyMjIEV2aWN0aW9uIFJhdGUgYnkgR3JhZGUNCg0KQXJlYXMgd2l0aCBsb3dlciBncmFkZXMgKEMgYW5kIEQpIGV4aGliaXQgc2lnbmlmaWNhbnRseSBoaWdoZXIgZXZpY3Rpb24gcmF0ZXMgY29tcGFyZWQgdG8gaGlnaGVyLWdyYWRlZCBhcmVhcyAoQSBhbmQgQikuIFRoaXMgdW5kZXJzY29yZXMgdGhlIGVuZHVyaW5nIGltcGFjdCBvZiByZWRsaW5pbmcsIHdoZXJlIGhpc3RvcmljYWxseSBtYXJnaW5hbGl6ZWQgY29tbXVuaXRpZXMgY29udGludWUgdG8gZmFjZSBoaWdoZXIgZXZpY3Rpb24gcmlza3MuDQoNCiMjIyMgSGlzdG9ncmFtIG9mIEV2aWN0aW9uIFJhdGUNCg0KVGhlIGhpc3RvZ3JhbSByZXZlYWxzIHRoYXQgd2hpbGUgbW9zdCBhcmVhcyBoYXZlIGxvd2VyIGV2aWN0aW9uIHJhdGVzLCB0aGVyZSBhcmUgc2lnbmlmaWNhbnQgcG9ja2V0cyB3aXRoIHZlcnkgaGlnaCByYXRlcy4gVGhpcyBkaXN0cmlidXRpb24gaGlnaGxpZ2h0cyB0aGUgbmVlZCB0byBmb2N1cyByZXNvdXJjZXMgb24gdGhlIG1vc3QgYWZmZWN0ZWQgYXJlYXMgdG8gcHJldmVudCBldmljdGlvbnMgZWZmZWN0aXZlbHkuDQoNCiMjIyMgRGVuc2l0eSBQbG90IG9mIEV2aWN0aW9uIFJhdGUgYnkgR3JhZGUNCg0KSGlnaGVyIEVSQVAgaW5kZXggdmFsdWVzIGFyZSBhc3NvY2lhdGVkIHdpdGggaGlnaGVyIGV2aWN0aW9uIHJhdGVzLiBUaGlzIGluZGljYXRlcyB0aGF0IGFyZWFzIG5lZWRpbmcgbW9yZSByZW50YWwgYXNzaXN0YW5jZSBhbHNvIGV4cGVyaWVuY2UgaGlnaGVyIGV2aWN0aW9uIHJpc2tzLiBIb3dldmVyLCB0aGUgRVJBUCBpbmRleCBhbG9uZSBkb2VzIG5vdCBmdWxseSBwcmVkaWN0IGV2aWN0aW9uIHJhdGVzLCB0aGVyZSBtaWdodCBhIG5lZWQgdG8gbG9vayBvdGhlciBmYWN0b3JzIHRoYXQgcHJlZGljdCBldmljdGlvbi4gDQoNCiMjIyMgRXZpY3Rpb24gUmF0ZSBieSBFUkFQIEluZGV4IFZhbHVlDQoNCk9ic2VydmF0aW9uOiBIaWdoZXIgRVJBUCBpbmRleCB2YWx1ZXMgY29ycmVsYXRlIHdpdGggaGlnaGVyIGV2aWN0aW9uIHJhdGVzLCBlc3BlY2lhbGx5IGF0IHRoZSBoaWdoZXIgZW5kIG9mIHRoZSBpbmRleC4NCg0KRGlmZmVyZW5jZTogVGhlIGNvcnJlbGF0aW9uIGJldHdlZW4gaGlnaCBFUkFQIGluZGV4IHZhbHVlcyBhbmQgZXZpY3Rpb24gcmF0ZXMgaXMgbW9yZSBhcHBhcmVudCBpbiBDaGljYWdvIHRoYW4gaW4gU2VhdHRsZSwgc3VnZ2VzdGluZyB0aGF0IHJlbnRhbCBhc3Npc3RhbmNlIHByb2dyYW1zIG1pZ2h0IGJlIGxlc3MgZWZmZWN0aXZlIGluIHByZXZlbnRpbmcgZXZpY3Rpb25zIGhlcmUuDQoNCiMjIyMgRXZpY3Rpb24gUmF0ZSBieSBNZWRpYW4gR3Jvc3MgUmVudA0KDQpFdmljdGlvbiByYXRlcyB2YXJ5IHNpZ25pZmljYW50bHkgYWNyb3NzIGRpZmZlcmVudCByZW50IGxldmVscy4gV2hpbGUgaGlnaGVyIHJlbnRzIG1pZ2h0IGJlIGV4cGVjdGVkIHRvIGNvcnJlbGF0ZSB3aXRoIGhpZ2hlciBldmljdGlvbiByYXRlcywgdGhlIGRhdGEgc2hvd3MgdGhhdCBsb3ctcmVudCBhcmVhcyBjYW4gYWxzbyBoYXZlIGhpZ2ggZXZpY3Rpb24gcmF0ZXMsIHBvaW50aW5nIHRvIGJyb2FkZXIgc29jaW8tZWNvbm9taWMgaXNzdWVzIGFmZmVjdGluZyBob3VzaW5nIHN0YWJpbGl0eS4NCg0KDQo=